package persistence;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * Classe de mapping HIBERNATE à ecrire : 1 classe par table, ceci est un
 * exemple. Le mapping se fait SUR LES GETTERS.
 *TEST UPDATE
 */
// On dit que c'est une entité JPA
@Entity
// On dit quelle table c'est
@Table( name = "NOM_TABLE_A_DEFINIR" )
public class ExempleEntite
{
    private String username;

    private int userId;

    
    /**
     * Obligatoire pour que HIBERNATE sache instancier comme il faut l'objet
     */
    public ExempleEntite()
    {

    }

    /**
     * Exemple si la colonne de nom "USER_ID" est la clef primaire de la table
     * 
     * @return
     */
    // On dit que c'est l'id
    @Id
    // On dit que c'est "AUTO_INCREMENT" en Mysql (ce bout de code varie selon
    // ce qui est en base, j'ai mis autoincrement là car c'est le plu courant en
    // mysql)
    @GeneratedValue( strategy = GenerationType.IDENTITY )
    // On dit quelle colonne c'est
    @Column( name = "USER_ID", unique = true, nullable = false )
    public int getUserId()
    {
        return userId;
    }

    // On dit quelle colonne c'est
    @Column( name = "USERNAME", nullable = false, length = 20 )
    public String getUsername()
    {
        return username;
    }

    public void setUsername( String username )
    {
        this.username = username;
    }

    public void setUserId( int userId )
    {
        this.userId = userId;
    }
}
